package com.easylinkin.linkappapi.elasticsearch.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonAlias;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import java.util.List;
import lombok.Data;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * <p>
 * 用电设备历史表
 *
 * </p>
 *
 * @author XuGuoQing
 * @since 2020-04-23
 */
@Data
@TableName("linkapp_elstic_devenergyreal")
@JsonIgnoreProperties(ignoreUnknown = true)
public class DeviceEnergyReal extends Model<DeviceEnergyReal> {

    private static final long serialVersionUID = 1L;


    /**
     * 数据id  自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    private String id;

    /**
     * 资产的创建时间
     */
    @TableField("batchId")
    private String batchId;


    /**
     * 设备当天用电
     */
    @TableField("dayEnergy")
    private Double dayEnergy;

    /**
     * 设备累计电量
     */
    @TableField("sumenergy")
//    去除硬编码
//    @JsonAlias({"water_flux","combined_active_energy","gas_flux","total_energy","positive_active_energy"})
    private Double sumEnergy;

    /**
     * 设备编码
     */
    @TableField("deviceCode")
    private String deviceCode;

    /**
     * 设备名称
     */
    @TableField("deviceName")
    private String deviceName;

    /**
     * 设备型号
     */
    @TableField("deviceUnitName")
    private String deviceUnitName;


    /**
     * 设备型号
     */
    @TableField("exist = false")
    private String deviceUnitCode;

    /**
     * 设备型号id
     */
    @TableField("uniqueMark")
    private String uniqueMark;


    /**
     * 数据上报创建时间
     */
    @TableField("createTime")
    private Date createTime;

    /**
     * 数据上报创建时间 string
     */
    @TableField(exist = false)
    private String createTimeStr;


    /**
     * 空间名称（前端显示）
     */
    @TableField(exist = false)
    private String spaceName;

    /**
     * 空间名称（前端显示）
     */
    @TableField(exist = false)
    private String spaceId;


    /**
     * 区域（前端显示）
     */
    @TableField(exist = false)
    private String areaPath;


    /**
     * 区域（前端显示）
     */
    @TableField(exist = false)
    private String areaId;


    /**
     * 设备类型名称（前端显示）
     */
    @TableField(exist = false)
    private String deviceTypeName;

    /**
     * 进入量
     */
    @TableField(exist = false)
    private int totalInCount;

    /**
     * 出去量
     */
    @TableField(exist = false)
    private int totalOutCount;


    /**
     * 设备列表，包含各设备当前能耗统计
     */
    @TableField(exist = false)
    private List<DeviceEnergyRealItem> items;


    /**
     * 任务id kettle 任务id
     */
    @TableField(exist = false)
    private String jobId;

    /**
     * 数据源id
     */
    @TableField(exist = false)
    private String dataSourceId;
    /**
     * 计算配置id
     */
    @TableField(exist = false)
    private String calcCfgId;

    /**
     * 计算配置名称
     */
    @TableField(exist = false)
    private String calcCfgName;

    /**
     * 设备数量
     */
    @TableField(exist = false)
    private String deviceCnt;

    /**
     * 该数据源 当天当前用量
     */
    @TableField(exist = false)
    private Double day;

    /**
     * 该数据源 累计用量
     */
    @TableField(exist = false)
    private Double total;
    /**
     * 计算时间
     */
    @TableField(exist = false)
    private String calcTime;


    public String haveDayTime() {
        String formatHMS = "yyyy-MM-dd";
        DateFormat sdf = new SimpleDateFormat(formatHMS);
        return sdf.format(this.getCreateTime());
    }
    public String haveMonthTime() {
        String formatHMS = "yyyy-MM";
        DateFormat sdf = new SimpleDateFormat(formatHMS);
        return sdf.format(this.getCreateTime());
    }


}
